home *** CD-ROM | disk | FTP | other *** search
-
-
-
- RECNO(3) RECNO(3)
-
-
- NNAAMMEE
- recno - record number database access method
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ttyyppeess..hh>>
- ##iinncclluuddee <<ddbb..hh>>
-
- DDEESSCCRRIIPPTTIIOONN
- The routine _d_b_o_p_e_n is the library interface to database
- files. One of the supported file formats is record number
- files. The general description of the database access
- methods is in _d_b_o_p_e_n(3), this manual page describes only
- the recno specific information.
-
- The record number data structure is either variable or
- fixed-length records stored in a flat-file format,
- accessed by the logical record number. The existence of
- record number five implies the existence of records one
- through four, and the deletion of record number one causes
- record number five to be renumbered to record number four,
- as well as the cursor, if positioned after record number
- one, to shift down one record.
-
- The recno access method specific data structure provided
- to _d_b_o_p_e_n is defined in the <db.h> include file as fol-
- lows:
-
- typedef struct {
- u_long flags;
- u_int cachesize;
- u_int psize;
- int lorder;
- size_t reclen;
- u_char bval;
- char *bfname;
- } RECNOINFO;
-
- The elements of this structure are defined as follows:
-
- flags The flag value is specified by _o_r'ing any of the
- following values:
-
- R_FIXEDLEN
- The records are fixed-length, not byte
- delimited. The structure element _r_e_c_l_e_n
- specifies the length of the record, and the
- structure element _b_v_a_l is used as the pad
- character. Any records, inserted into the
- database, that are less than _r_e_c_l_e_n bytes
- long are automatically padded.
-
- R_NOKEY
- In the interface specified by _d_b_o_p_e_n, the
- sequential record retrieval fills in both
-
-
-
- August 18, 1994 1
-
-
-
-
-
- RECNO(3) RECNO(3)
-
-
- the caller's key and data structures. If
- the R_NOKEY flag is specified, the _c_u_r_s_o_r
- routines are not required to fill in the key
- structure. This permits applications to
- retrieve records at the end of files without
- reading all of the intervening records.
-
- R_SNAPSHOT
- This flag requires that a snapshot of the
- file be taken when _d_b_o_p_e_n is called, instead
- of permitting any unmodified records to be
- read from the original file.
-
- cachesize
- A suggested maximum size, in bytes, of the memory
- cache. This value is oonnllyy advisory, and the access
- method will allocate more memory rather than fail.
- If _c_a_c_h_e_s_i_z_e is 0 (no size is specified) a default
- cache is used.
-
- psize The recno access method stores the in-memory copies
- of its records in a btree. This value is the size
- (in bytes) of the pages used for nodes in that
- tree. If _p_s_i_z_e is 0 (no page size is specified) a
- page size is chosen based on the underlying file
- system I/O block size. See _b_t_r_e_e(3) for more
- information.
-
- lorder The byte order for integers in the stored database
- metadata. The number should represent the order as
- an integer; for example, big endian order would be
- the number 4,321. If _l_o_r_d_e_r is 0 (no order is
- specified) the current host order is used.
-
- reclen The length of a fixed-length record.
-
- bval The delimiting byte to be used to mark the end of a
- record for variable-length records, and the pad
- character for fixed-length records. If no value is
- specified, newlines (``\n'') are used to mark the
- end of variable-length records and fixed-length
- records are padded with spaces.
-
- bfname The recno access method stores the in-memory copies
- of its records in a btree. If bfname is non-NULL,
- it specifies the name of the btree file, as if
- specified as the file name for a dbopen of a btree
- file.
-
- The data part of the key/data pair used by the recno
- access method is the same as other access methods. The
- key is different. The _d_a_t_a field of the key should be a
- pointer to a memory location of type _r_e_c_n_o___t, as defined
- in the <db.h> include file. This type is normally the
-
-
-
- August 18, 1994 2
-
-
-
-
-
- RECNO(3) RECNO(3)
-
-
- largest unsigned integral type available to the implemen-
- tation. The _s_i_z_e field of the key should be the size of
- that type.
-
- Because there can be no meta-data associated with the
- underlying recno access method files, any changes made to
- the default values (e.g. fixed record length or byte sepa-
- rator value) must be explicitly specified each time the
- file is opened.
-
- In the interface specified by _d_b_o_p_e_n, using the _p_u_t inter-
- face to create a new record will cause the creation of
- multiple, empty records if the record number is more than
- one greater than the largest record currently in the
- database.
-
- EERRRROORRSS
- The _r_e_c_n_o access method routines may fail and set _e_r_r_n_o
- for any of the errors specified for the library routine
- _d_b_o_p_e_n(3) or the following:
-
- [EINVAL]
- An attempt was made to add a record to a fixed-
- length database that was too large to fit.
-
- SSEEEE AALLSSOO
- _b_t_r_e_e(3), _d_b_o_p_e_n(3), _h_a_s_h(3), _m_p_o_o_l(3)
-
- _D_o_c_u_m_e_n_t _P_r_o_c_e_s_s_i_n_g _i_n _a _R_e_l_a_t_i_o_n_a_l _D_a_t_a_b_a_s_e _S_y_s_t_e_m,
- Michael Stonebraker, Heidi Stettner, Joseph Kalash,
- Antonin Guttman, Nadene Lynn, Memorandum No. UCB/ERL
- M82/32, May 1982.
-
- BBUUGGSS
- Only big and little endian byte order is supported.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- August 18, 1994 3
-
-
-